#include "drv_buzzer.h"

#define DRV_BUZZER_PIN            LL_GPIO_PIN_4

#define DRV_BUZZER_PORT           GPIOF

/*------------PB7   TIM17_CH1N------------*/

void drv_buzzer_init(void)
{
    LL_IOP_GRP1_EnableClock(LL_IOP_GRP1_PERIPH_GPIOF);     

    LL_GPIO_InitTypeDef GPIO_InitStruct = {0x00};
    GPIO_InitStruct.Pin         = DRV_BUZZER_PIN;
    GPIO_InitStruct.Mode        = LL_GPIO_MODE_OUTPUT;
    GPIO_InitStruct.Speed       = LL_GPIO_SPEED_FREQ_VERY_HIGH;
    GPIO_InitStruct.OutputType  = LL_GPIO_OUTPUT_PUSHPULL;
    GPIO_InitStruct.Pull        = LL_GPIO_PULL_NO;
    LL_GPIO_Init(DRV_BUZZER_PORT, &GPIO_InitStruct);
}

void drv_buzzer_set(drv_buzzer_state_t state)
{
    if (state == DRV_LED_OFF) {
        LL_GPIO_ResetOutputPin(DRV_BUZZER_PORT, DRV_BUZZER_PIN);
    } else {
        LL_GPIO_SetOutputPin(DRV_BUZZER_PORT, DRV_BUZZER_PIN);
    }
}

void drv_buzzer_toggle(void)
{
    LL_GPIO_TogglePin(DRV_BUZZER_PORT, DRV_BUZZER_PIN);
}
